#pragma once

#include "Eigen/Geometry"
#include <vector>
#include "Wall.h"

using namespace Eigen;
using namespace std;

class Character
{
	float angle;
	Vector3f position;

public:
	Character();
	~Character();

	const Vector3f* getPosition(void)const;
	void setPosition(const Vector3f& Position);
	void setPosition(const float x, const float y, const float z);
	void turn(float _angle);
	void move(const Vector3f& dist);
	void move (vector<Wall>& duvarlar,float speed);
	float getAngle();
};

inline const Vector3f* Character::getPosition(void)const 
{
	return &position;
}

inline void Character::setPosition(const Vector3f& Position)
{
	position = Position;
}

inline void Character::setPosition(const float x, const float y, const float z)
{
	position[0] = x;
	position[1] = y;
	position[2] = z;
}

inline void Character::turn(float _angle)
{
	angle += _angle;

	if(angle > 360.0f)
		angle -= 360.0f;
}

inline float Character::getAngle()
{
	return angle;
}